There are numerous methods for installing software products on computers. For example, it is conventional to install a software product on a computer by using a set of diskettes that contain the software materials necessary for the installation of the software product. The first diskette typically includes a setup program and a compressed file. Execution of the setup program causes files to be decompressed from the compressed file on the first diskette, and those decompressed files are placed in a target directory of the computer. When decompression from the first disk is complete, the setup program prompts for the second diskette, and the setup program causes files to be decompressed from a compressed file on the second diskette, and those decompressed files are also placed in the target directory. This may continue for several diskettes. In addition to decompressing files from the diskettes, the setup program guides the user through, or otherwise handles, the process of setting up the software product, which is a conventional process for preparing the data and information on the computer so that the software product will work with the computer and its attached devices. For example, the setup program may modify the computer's configuration files, which reside on the computer irrespective of the software product being installed. The software product can typically be executed in a conventional manner, once the setup program has been completely executed.
It is also conventional to install a software product on a computer by using a compact disk that contains the software materials necessary for the installation of the software product. Installation with a compact disk is similar to installation with diskettes, except that the compressed files that are typically spread across several diskettes may each be included on a single compact disk. Further, after decompressing files from a first compressed file on the compact disk to the target directory, the setup program typically proceeds automatically to decompress files from subsequent compressed files on the compact disk.
Numerous steps have been taken to simplify and streamline the process of installing a software product on a computer. For example, it is now conventional to have a single executable file that contains the software materials necessary for the installation of a software product. The single executable file can be transferred from a source, such as a website on the Internet, to any disk drive that can be written to and is associated with the computer to which the software product is to be installed.
One type of conventional single executable file is the source of a tree of files and a program, which may be referred to as the shell program. The tree of files may be compressed into the single executable file during the original creation of the single executable file. That compression can be facilitated by a utility program or runtime library.
While the single executable file is on a disk drive associated with the computer to which the software product is to be installed, the person using the computer can select the single executable file to initiate execution of the shell program. The shell program may designate a predefined location on a disk drive associated with the computer, such as a temporary directory that is established by the WINDOWS brand operating system sold by Microsoft Corporation of Redmond, Wash., and the temporary directory may be examined in an effort to determine if it has sufficient free space to accommodate the tree of files. If sufficient space is available, the shell program causes the tree of files to be extracted from the single executable file, and the tree of files is placed in the temporary directory.
Some of the files of the tree of files placed in the temporary directory may be individually compressed, such that the tree of files in the temporary directory contains compressed files. One of the files of the tree of files is an executable file, the execution of which causes a setup program to run. The setup program must be run to set up the software product. Some conventional shell programs initiate execution of the setup program. In contrast, other conventional shell programs do not initiate execution of the setup program, such that a user must initiate execution of the setup program in order to set up the software product.
The setup program guides the user through the process of setting up the software product, which is a conventional process for preparing the data and information on the computer so that the software product will work with the computer and its attached devices. For example, the setup program copies the tree of files from the temporary directory to a target directory, may cause individually compressed files of the tree of files to be decompressed, and may modify the computer's configuration files, which reside on the computer irrespective of the single executable file. Typically, the tree of files in the temporary directory varies from the subsequent tree of files in the target directory. This variation may be because some of the files in the tree of files in the temporary directory are decompressed before they are placed in the target directory. Because an entire tree of files is placed in the temporary directory, and the tree of files is copied to the target directory, a large amount of space is required for installation of the software product.
Once the software product is installed, there is no need for the tree of files in the temporary directory. For some software products, is it conventional for the shell program or setup program to remove the tree of files from the temporary directory, whereas for other software products the tree of files is not automatically removed from the temporary directory. Thus, in some circumstances the user must delete the temporary tree of files from the temporary directory if it is desired to free-up storage space. Some users may not know that is okay to delete the temporary tree of files from the temporary directory.
It is conventional to determine if there is sufficient free space to accommodate the tree of files to be extracted from the single executable file by comparing the total number of bytes that define the tree of files, when extracted, to the number of bytes of free space available in the temporary directory. For example, if the extracted tree of files consists of 10 megabytes, it will be assumed that there is sufficient free space if 10 megabytes of free space is available in the temporary directory. However, for at least some conventional single executable files, the extraction of the tree of files from the single executable file will fail even if the analysis indicates that there is sufficient space in the temporary directory for the tree of files, because the WINDOWS brand operating system writes out each file to the end of a cluster boundary. If the analysis indicates that there is sufficient space, but there are not enough clusters due to the writing of each file to the end of a cluster boundary, the extraction will fail part way through the processing.
Numerous problems can be encountered when downloading and installing software as described above. For example, the tree of files initially extracted from the single executable file may require a large amount of storage space which may not be available. Further, it is common for a shell program to perform an analysis that incorrectly determines whether there is sufficient free space to accommodate the tree of files extracted from the single executable file, because the shell program does not consider clusters, which may cause the installation of the software product to fail. Further, the shell programs associated with the installation of some software products do not initiate execution of the corresponding setup program that must be executed to set up the software product. Moreover, neither the shell program nor the setup program associated with the installation of some software products operate to remove the tree of files initially extracted from the single executable file and placed in the temporary directory. Thus, it is common with the installation of some software products to leave the tree of files in the temporary directory, even though those files are not used after the software product has been installed. Retaining such unused files is certainly inefficient use of storage space.
Therefore, there is a need in the art for an improved executable file that contains the software materials necessary for the installation of a software product on a computer, and that, once executed, searches for and uses only a small amount of temporary storage space in the process of getting the files of the software product in the target directory, causes the software product to be set up on the computer, and that cleans-up the temporary storage space.